Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


Taskfile.yml v3.3.2 (aaa1e9b0) Text, 12.67 KB

Tff7b72versionTb4b4b4: Ta5d6ff"Ta5d6ff3Ta5d6ff"

Tff7b72varsTb4b4b4:
Tff7b72PYTHONTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${PYTHON:-python}"
Tff7b72NPMTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${NPM:-pnpm}"
Tff7b72LEGACY_ELECTRON_VERSIONTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${LEGACY_ELECTRON_VERSION:-30.0.8}"
Tff7b72DOCKER_COMPOSE_CMDTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_COMPOSE_CMD:-dockerTa5d6ff Ta5d6ffcompose}"
Tff7b72DOCKER_COMPOSE_FILETb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_COMPOSE_FILE:-docker-compose.yml}"
Tff7b72DOCKER_IMAGETb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_IMAGE:-reticulum-meshchatx:local}"
Tff7b72DOCKER_BUILDERTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_BUILDER:-meshchatx-builder}"
Tff7b72DOCKER_PLATFORMSTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_PLATFORMS:-linux/amd64}"
Tff7b72DOCKER_BUILD_FLAGSTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_BUILD_FLAGS:---load}"
Tff7b72DOCKER_BUILD_ARGSTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_BUILD_ARGS:-}"
Tff7b72DOCKER_CONTEXTTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKER_CONTEXT:-.}"
Tff7b72DOCKERFILETb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${DOCKERFILE:-Dockerfile}"
Tff7b72ANDROID_DIRTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${ANDROID_DIR:-android}"
Tff7b72PYTHON_SRC_DIRTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${PYTHON_SRC_DIR:-${ANDROID_DIR}/app/src/main/python}"
Tff7b72JNI_LIBS_DIRTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${JNI_LIBS_DIR:-${ANDROID_DIR}/app/src/main/jniLibs}"
Tff7b72RETICULUM_RNS_SRCTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${RETICULUM_RNS_SRC:-./misc/RNS}"
Tff7b72RETICULUM_LXMF_SRCTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${RETICULUM_LXMF_SRC:-./misc/LXMF}"
Tff7b72RETICULUM_LXST_SRCTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${RETICULUM_LXST_SRC:-./misc/LXST}"
Tff7b72SIDEBAND_CODEC2_WHLTb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${SIDEBAND_CODEC2_WHL:-./misc/pycodec2-3.0.1-cp311-cp311-linux_aarch64.whl}"
Tff7b72SIDEBAND_LIB_ARM64Tb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${SIDEBAND_LIB_ARM64:-./misc/libcodec2-arm64-v8a.so}"
Tff7b72SIDEBAND_LIB_ARMEABITb4b4b4:
Tff7b72shTb4b4b4: Ta5d6ffechoTa5d6ff Ta5d6ff"${SIDEBAND_LIB_ARMEABI:-./misc/libcodec2-armeabi-v7a.so}"

Tff7b72tasksTb4b4b4:
Tff7b72defaultTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffShowTa5d6ff Ta5d6ffavailableTa5d6ff Ta5d6fftasks
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6fftaskTa5d6ff Ta5d6ff--list

Tff7b72setup-uvTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6ffuv
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffcurlTa5d6ff Ta5d6ff-LsSfTa5d6ff Ta5d6ffhttps://astral.sh/uv/install.shTa5d6ff Ta5d6ff|Ta5d6ff Ta5d6ffsh

Tff7b72setup-python-envTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffSetupTa5d6ff Ta5d6ffPythonTa5d6ff Ta5d6ffenvironmentTa5d6ff Ta5d6ffusingTa5d6ff Ta5d6ffuv
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffuvTa5d6ff Ta5d6ffvenv
Tb4b4b4- Ta5d6ffuvTa5d6ff Ta5d6ffpipTa5d6ff Ta5d6ffinstallTa5d6ff Ta5d6ffruffTa5d6ff Ta5d6ffpoetry

Tff7b72lint-pythonTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffLintTa5d6ff Ta5d6ffPythonTa5d6ff Ta5d6ffcodeTa5d6ff Ta5d6ffusingTa5d6ff Ta5d6ffruff
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffuvTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffruffTa5d6ff Ta5d6ffcheckTa5d6ff Ta5d6ff.
Tb4b4b4- Ta5d6ffuvTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffruffTa5d6ff Ta5d6ffformatTa5d6ff Ta5d6ff--checkTa5d6ff Ta5d6ff.

Tff7b72lint-frontendTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffLintTa5d6ff Ta5d6fffrontendTa5d6ff Ta5d6ffcode
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6fflintTa5d6ff"

Tff7b72lintTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffallTa5d6ff Ta5d6fflinters
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3lint-frontendTb4b4b4, Te6edf3lint-pythonTb4b4b4]

Tff7b72installTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6ffallTa5d6ff Ta5d6ffdependenciesTa5d6ff Ta5d6ff(installsTa5d6ff Ta5d6ffnodeTa5d6ff Ta5d6ffmodulesTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffpythonTa5d6ff Ta5d6ffdeps)
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3node_modulesTb4b4b4, Te6edf3pythonTb4b4b4]

Tff7b72node_modulesTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6ffNode.jsTa5d6ff Ta5d6ffdependencies
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffinstallTa5d6ff"

Tff7b72pythonTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6ffPythonTa5d6ff Ta5d6ffdependenciesTa5d6ff Ta5d6ffusingTa5d6ff Ta5d6ffPoetry
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.PYTHON}}Te6edf3 Ta5d6ff-mTe6edf3 Ta5d6ffpoetryTe6edf3 Ta5d6ffinstallTa5d6ff"

Tff7b72runTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6fftheTa5d6ff Ta5d6ffapplication
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3installTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.PYTHON}}Te6edf3 Ta5d6ff-mTe6edf3 Ta5d6ffpoetryTe6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffmeshchatTa5d6ff"

Tff7b72devTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6fftheTa5d6ff Ta5d6ffapplicationTa5d6ff Ta5d6ffinTa5d6ff Ta5d6ffdevelopmentTa5d6ff Ta5d6ffmode
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3build-frontendTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Tff7b72taskTb4b4b4: Ta5d6ffrun

Tff7b72buildTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6fftheTa5d6ff Ta5d6ffapplicationTa5d6ff Ta5d6ff(frontendTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffbackend)
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3installTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffbuildTa5d6ff"

Tff7b72build-frontendTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffonlyTa5d6ff Ta5d6fftheTa5d6ff Ta5d6fffrontend
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3node_modulesTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffbuild-frontendTa5d6ff"

Tff7b72wheelTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffPythonTa5d6ff Ta5d6ffwheelTa5d6ff Ta5d6ffpackage
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3installTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.PYTHON}}Te6edf3 Ta5d6ff-mTe6edf3 Ta5d6ffpoetryTe6edf3 Ta5d6ffbuildTe6edf3 Ta5d6ff-fTe6edf3 Ta5d6ffwheelTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.PYTHON}}Te6edf3 Ta5d6ffscripts/move_wheels.pyTa5d6ff"

Tff7b72build-appimageTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffLinuxTa5d6ff Ta5d6ffAppImage
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3buildTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffelectron-postinstallTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdistTe6edf3 Ta5d6ff--Te6edf3 Ta5d6ff--linuxTe6edf3 Ta5d6ffAppImageTa5d6ff"

Tff7b72build-exeTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffWindowsTa5d6ff Ta5d6ffportableTa5d6ff Ta5d6ffexecutable
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3buildTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffelectron-postinstallTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdistTe6edf3 Ta5d6ff--Te6edf3 Ta5d6ff--winTe6edf3 Ta5d6ffportableTa5d6ff"

Tff7b72build-electron-linuxTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffLinuxTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffappTa5d6ff Ta5d6ffwithTa5d6ff Ta5d6ffprebuiltTa5d6ff Ta5d6ffbackend
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3build-frontendTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffelectron-postinstallTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffbuild-backendTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdistTe6edf3 Ta5d6ff--Te6edf3 Ta5d6ff--linuxTe6edf3 Ta5d6ffAppImageTe6edf3 Ta5d6ffdebTa5d6ff"

Tff7b72build-electron-windowsTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffWindowsTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffappsTa5d6ff Ta5d6ff(portableTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffinstaller)
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3build-frontendTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffelectron-postinstallTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffbuild-backendTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdistTe6edf3 Ta5d6ff--Te6edf3 Ta5d6ff--winTe6edf3 Ta5d6ffportableTe6edf3 Ta5d6ffnsisTa5d6ff"

Tff7b72build-electron-allTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffallTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffappsTa5d6ff Ta5d6ff(LinuxTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffWindows)
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3build-frontendTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffelectron-postinstallTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffbuild-backendTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdistTe6edf3 Ta5d6ff--Te6edf3 Ta5d6ff--linuxTe6edf3 Ta5d6ffAppImageTe6edf3 Ta5d6ffdebTe6edf3 Ta5d6ff--winTe6edf3 Ta5d6ffportableTe6edf3 Ta5d6ffnsisTa5d6ff"

Tff7b72distTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffdistributionTa5d6ff Ta5d6ff(defaultsTa5d6ff Ta5d6fftoTa5d6ff Ta5d6ffAppImage)
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Tff7b72taskTb4b4b4: Ta5d6ffbuild-appimage

Tff7b72electron-legacyTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6fflegacyTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffversion
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffinstallTe6edf3 Ta5d6ff--no-saveTe6edf3 Ta5d6ffelectron@{{.LEGACY_ELECTRON_VERSION}}Ta5d6ff"

Tff7b72build-appimage-legacyTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffLinuxTa5d6ff Ta5d6ffAppImageTa5d6ff Ta5d6ffwithTa5d6ff Ta5d6fflegacyTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffversion
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3buildTb4b4b4, Te6edf3electron-legacyTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffelectron-postinstallTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdistTe6edf3 Ta5d6ff--Te6edf3 Ta5d6ff--linuxTe6edf3 Ta5d6ffAppImageTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff./scripts/rename_legacy_artifacts.shTa5d6ff"

Tff7b72build-exe-legacyTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffWindowsTa5d6ff Ta5d6ffportableTa5d6ff Ta5d6ffexecutableTa5d6ff Ta5d6ffwithTa5d6ff Ta5d6fflegacyTa5d6ff Ta5d6ffElectronTa5d6ff Ta5d6ffversion
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3buildTb4b4b4, Te6edf3electron-legacyTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffelectron-postinstallTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffdistTe6edf3 Ta5d6ff--Te6edf3 Ta5d6ff--winTe6edf3 Ta5d6ffportableTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff./scripts/rename_legacy_artifacts.shTa5d6ff"

Tff7b72cleanTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffCleanTa5d6ff Ta5d6ffbuildTa5d6ff Ta5d6ffartifactsTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffdependencies
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffrmTa5d6ff Ta5d6ff-rfTa5d6ff Ta5d6ffnode_modules
Tb4b4b4- Ta5d6ffrmTa5d6ff Ta5d6ff-rfTa5d6ff Ta5d6ffbuild
Tb4b4b4- Ta5d6ffrmTa5d6ff Ta5d6ff-rfTa5d6ff Ta5d6ffdist
Tb4b4b4- Ta5d6ffrmTa5d6ff Ta5d6ff-rfTa5d6ff Ta5d6ffpython-dist
Tb4b4b4- Ta5d6ffrmTa5d6ff Ta5d6ff-rfTa5d6ff Ta5d6ffmeshchatx/public
Tb4b4b4- Ta5d6ffrmTa5d6ff Ta5d6ff-rfTa5d6ff Ta5d6ffbuild-dir
Tb4b4b4- Tff7b72taskTb4b4b4: Ta5d6ffandroid-clean

Tff7b72fixTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffFormatTa5d6ff Ta5d6ffandTa5d6ff Ta5d6fffixTa5d6ff Ta5d6fflintingTa5d6ff Ta5d6ffissuesTa5d6ff Ta5d6ff(PythonTa5d6ff Ta5d6ffandTa5d6ff Ta5d6fffrontend)
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffuvTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffruffTa5d6ff Ta5d6ffformatTa5d6ff Ta5d6ff./
Tb4b4b4- Ta5d6ffuvTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffruffTa5d6ff Ta5d6ffcheckTa5d6ff Ta5d6ff--fixTa5d6ff Ta5d6ff./
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6ffformatTa5d6ff"
Tb4b4b4- Ta5d6ff"Ta5d6ff{{.NPM}}Te6edf3 Ta5d6ffrunTe6edf3 Ta5d6fflint:fixTa5d6ff"

Tff7b72build-dockerTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffDockerTa5d6ff Ta5d6ffimageTa5d6ff Ta5d6ffusingTa5d6ff Ta5d6ffbuildx
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Tb4b4b4|
Tff7b72if ! docker buildx inspect {{.DOCKER_BUILDER}} >/dev/null 2>&1; then
Tff7b72docker buildx create --name {{.DOCKER_BUILDER}} --use >/dev/null
Tff7b72else
Tff7b72docker buildx use {{.DOCKER_BUILDER}}
Tff7b72fi
Tb4b4b4- Tb4b4b4|
Tff7b72docker buildx build --builder {{.DOCKER_BUILDER}} --platform {{.DOCKER_PLATFORMS}} \
Tff7b72{{.DOCKER_BUILD_FLAGS}} \
Tff7b72-t {{.DOCKER_IMAGE}} \
Tff7b72{{.DOCKER_BUILD_ARGS}} \
Tff7b72-f {{.DOCKERFILE}} \
Tff7b72{{.DOCKER_CONTEXT}}

Tff7b72build-demo-dockerTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffFrontend-onlyTa5d6ff Ta5d6ffDemoTa5d6ff Ta5d6ffDockerTa5d6ff Ta5d6ffimage
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Tff7b72taskTb4b4b4: Ta5d6ffbuild-docker
Tff7b72varsTb4b4b4:
Tff7b72DOCKERFILETb4b4b4: Ta5d6ffDockerfile.demo
Tff7b72DOCKER_IMAGETb4b4b4: Ta5d6ffreticulum-meshchatx-demo:local

Tff7b72run-dockerTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffDockerTa5d6ff Ta5d6ffcontainerTa5d6ff Ta5d6ffusingTa5d6ff Ta5d6ffdocker-compose
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff'Ta5d6ffMESHCHAT_IMAGE="{{.DOCKER_IMAGE}}"Te6edf3 Ta5d6ff{{.DOCKER_COMPOSE_CMD}}Te6edf3 Ta5d6ff-fTe6edf3 Ta5d6ff{{.DOCKER_COMPOSE_FILE}}Te6edf3 Ta5d6ffupTe6edf3 Ta5d6ff--remove-orphansTe6edf3 Ta5d6ff--pullTe6edf3 Ta5d6ffneverTe6edf3 Ta5d6ffreticulum-meshchatxTa5d6ff'

Tff7b72run-demo-dockerTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffFrontend-onlyTa5d6ff Ta5d6ffDemoTa5d6ff Ta5d6ffDockerTa5d6ff Ta5d6ffcontainer
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ff'Ta5d6ffMESHCHAT_DEMO_IMAGE="reticulum-meshchatx-demo:local"Te6edf3 Ta5d6ff{{.DOCKER_COMPOSE_CMD}}Te6edf3 Ta5d6ff-fTe6edf3 Ta5d6ffdocker-compose.demo.ymlTe6edf3 Ta5d6ffupTe6edf3 Ta5d6ff--remove-orphansTa5d6ff'

Tff7b72android-initTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffInitializeTa5d6ff Ta5d6ffGradleTa5d6ff Ta5d6ffwrapperTa5d6ff Ta5d6ffforTa5d6ff Ta5d6ffAndroidTa5d6ff Ta5d6ffproject
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Tb4b4b4|
Tff7b72if [ ! -f "{{.ANDROID_DIR}}/gradle/wrapper/gradle-wrapper.jar" ]; then
Tff7b72echo "Downloading Gradle wrapper jar..."
Tff7b72mkdir -p "{{.ANDROID_DIR}}/gradle/wrapper"
Tff7b72curl -L -o "{{.ANDROID_DIR}}/gradle/wrapper/gradle-wrapper.jar" \
Tff7b72https://raw.githubusercontent.com/gradle/gradle/v8.12.1/gradle/wrapper/gradle-wrapper.jar || \
Tff7b72echo "Failed to download. Please run: cd {{.ANDROID_DIR}} && gradle wrapper --gradle-version 8.12.1"
Tff7b72else
Tff7b72echo "Gradle wrapper already initialized."
Tff7b72fi

Tff7b72android-prepareTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffPrepareTa5d6ff Ta5d6ffAndroidTa5d6ff Ta5d6ffbuildTa5d6ff Ta5d6ff(copyTa5d6ff Ta5d6ffmeshchatxTa5d6ff Ta5d6ffpackageTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffassets)
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3build-frontendTb4b4b4, Te6edf3android-initTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Tb4b4b4|
Tff7b72echo "Copying meshchatx package and dependencies to Android project..."
Tff7b72mkdir -p "{{.PYTHON_SRC_DIR}}"
Tff7b72# Remove old copies to ensure fresh build
Tff7b72rm -rf "{{.PYTHON_SRC_DIR}}/meshchatx"
Tff7b72rm -rf "{{.PYTHON_SRC_DIR}}/RNS"
Tff7b72rm -rf "{{.PYTHON_SRC_DIR}}/LXMF"
Tff7b72rm -rf "{{.PYTHON_SRC_DIR}}/LXST"

Tff7b72# Copy MeshChatX
Tff7b72cp -r meshchatx "{{.PYTHON_SRC_DIR}}/"

Tff7b72# Vendor RNS, LXMF, and LXST from ./misc/ and ./src/
Tff7b72cp -r ./misc/RNS "{{.PYTHON_SRC_DIR}}/"
Tff7b72cp -r ./misc/LXMF "{{.PYTHON_SRC_DIR}}/"
Tff7b72cp -r ./misc/LXST "{{.PYTHON_SRC_DIR}}/"
Tff7b72cp -r ./src/RNS "{{.PYTHON_SRC_DIR}}/" || true
Tff7b72cp -r ./src/LXMF "{{.PYTHON_SRC_DIR}}/" || true
Tff7b72cp -r ./src/LXST "{{.PYTHON_SRC_DIR}}/" || true

Tff7b72# Copy pycodec2 wheel from ./misc
Tff7b72cp "./misc/pycodec2-3.0.1-cp311-cp311-linux_aarch64.whl" "{{.PYTHON_SRC_DIR}}/" || true

Tff7b72# Copy native libraries from ./misc
Tff7b72mkdir -p "{{.JNI_LIBS_DIR}}/arm64-v8a"
Tff7b72mkdir -p "{{.JNI_LIBS_DIR}}/armeabi-v7a"
Tff7b72cp "./misc/libcodec2-arm64-v8a.so" "{{.JNI_LIBS_DIR}}/arm64-v8a/" || true
Tff7b72cp "./misc/libcodec2-armeabi-v7a.so" "{{.JNI_LIBS_DIR}}/armeabi-v7a/" || true

Tff7b72# Cleanup vendored packages (remove utilities/tests etc if needed, similar to Sideband)
Tff7b72rm -rf "{{.PYTHON_SRC_DIR}}/RNS/Utilities/RNS"
Tff7b72rm -rf "{{.PYTHON_SRC_DIR}}/LXMF/Utilities/LXMF"
Tff7b72rm -rf "{{.PYTHON_SRC_DIR}}/LXST/Utilities/LXST"
Tb4b4b4- Tb4b4b4|
Tff7b72echo "Android build prepared. Don't forget to:"
Tff7b72echo "1. Add Chaquopy license to {{.ANDROID_DIR}}/local.properties"
Tff7b72echo "2. Open {{.ANDROID_DIR}}/ in Android Studio or run: task android-build"

Tff7b72android-buildTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffAndroidTa5d6ff Ta5d6ffAPKTa5d6ff Ta5d6ff(requiresTa5d6ff Ta5d6ffAndroidTa5d6ff Ta5d6ffSDKTa5d6ff Ta5d6ffandTa5d6ff Ta5d6ffChaquopyTa5d6ff Ta5d6fflicense)
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3android-prepareTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffcdTa5d6ff Ta5d6ff"{{.ANDROID_DIR}}"Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff./gradlewTa5d6ff Ta5d6ffassembleDebug

Tff7b72android-build-releaseTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffAndroidTa5d6ff Ta5d6ffAPKTa5d6ff Ta5d6ff(release,Ta5d6ff Ta5d6ffrequiresTa5d6ff Ta5d6ffsigningTa5d6ff Ta5d6ffconfig)
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3android-prepareTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffcdTa5d6ff Ta5d6ff"{{.ANDROID_DIR}}"Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff./gradlewTa5d6ff Ta5d6ffassembleRelease

Tff7b72android-cleanTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffCleanTa5d6ff Ta5d6ffAndroidTa5d6ff Ta5d6ffbuildTa5d6ff Ta5d6ffartifacts
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffcdTa5d6ff Ta5d6ff"{{.ANDROID_DIR}}"Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff./gradlewTa5d6ff Ta5d6ffclean
Tb4b4b4- Ta5d6ffrmTa5d6ff Ta5d6ff-rfTa5d6ff Ta5d6ff"{{.PYTHON_SRC_DIR}}/meshchatx"

Tff7b72flatpak-check-sdkTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffCheckTa5d6ff Ta5d6ffifTa5d6ff Ta5d6ffrequiredTa5d6ff Ta5d6ffFlatpakTa5d6ff Ta5d6ffSDKTa5d6ff Ta5d6ffisTa5d6ff Ta5d6ffinstalled
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Tb4b4b4|
Tff7b72if ! flatpak info org.freedesktop.Sdk//24.08 >/dev/null 2>&1; then
Tff7b72echo "Flatpak SDK 24.08 is not installed."
Tff7b72echo "Install it with: flatpak install org.freedesktop.Sdk//24.08"
Tff7b72exit 1
Tff7b72fi
Tff7b72if ! flatpak info org.freedesktop.Platform//24.08 >/dev/null 2>&1; then
Tff7b72echo "Flatpak Platform runtime 24.08 is not installed."
Tff7b72echo "Install it with: flatpak install org.freedesktop.Platform//24.08"
Tff7b72exit 1
Tff7b72fi
Tff7b72if ! flatpak info org.freedesktop.Sdk.Extension.node20//24.08 >/dev/null 2>&1; then
Tff7b72echo "Flatpak Node.js 20 extension is not installed."
Tff7b72echo "Install it with: flatpak install org.freedesktop.Sdk.Extension.node20//24.08"
Tff7b72exit 1
Tff7b72fi
Tff7b72echo "Required Flatpak SDK, Platform runtime, and Node.js extension are installed."

Tff7b72build-flatpakTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffFlatpakTa5d6ff Ta5d6ffpackage
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3flatpak-check-sdkTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffflatpak-builderTa5d6ff Ta5d6ff--force-cleanTa5d6ff Ta5d6ffbuild-dirTa5d6ff Ta5d6ffflatpak.json

Tff7b72install-flatpakTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6ffFlatpakTa5d6ff Ta5d6ffpackageTa5d6ff Ta5d6fflocally
Tff7b72depsTb4b4b4: Tb4b4b4[Te6edf3build-flatpakTb4b4b4]
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffflatpak-builderTa5d6ff Ta5d6ff--installTa5d6ff Ta5d6ff--userTa5d6ff Ta5d6ff--force-cleanTa5d6ff Ta5d6ffbuild-dirTa5d6ff Ta5d6ffflatpak.json

Tff7b72run-flatpakTb4b4b4:
Tff7b72descTb4b4b4: Ta5d6ffRunTa5d6ff Ta5d6ffFlatpakTa5d6ff Ta5d6ffapplication
Tff7b72cmdsTb4b4b4:
Tb4b4b4- Ta5d6ffflatpakTa5d6ff Ta5d6ffrunTa5d6ff Ta5d6ffcom.sudoivan.reticulummeshchatx


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────